/**
 * ip 地址信息管理
 */
class BaseIpAddressInfo {
    /**
     *
     * @param {String} id 编号
     * @param {String} [houseId] 引用机房信息主键
     * @param {String} [sourceCompany] 来源单位
     * @param {String} [assignCompany] 分配单位
     * @param {String} [startIp] 起始IP地址
     * @param {String} [endIp] 终止IP地址
     * @param {1|2|3} [useType] 使用方式， 1：静态，2：动态，3：保留
     * @param {String} [useCompany] 使用单位
     * @param {Number} [companyAttr] 单位属性, 1: 军队,  2: 政府机关,  3: 事业单位,  4: 企业 ,  5: 个人,  6: 社会团体,  999: 其他
     * @param {Number} [idType] 证件类型, 1: 工商营业执照号码,  2: 身份证,  3: 组织机构代码证书,  4: 事业法人证书, 5: 军队代号,  6: 社团法人证书,  7: 护照,  8: 军官证,  9: 台胞证,  999: 其他
     * @param {String} [idNumber] 证件号码
     * @param {Date} [assignUseTime] 分配使用时间
     */
    constructor(
        {
            id,
            houseId,
            sourceCompany,
            assignCompany,
            startIp,
            endIp,
            useType,
            useCompany,
            companyAttr,
            idType,
            idNumber,
            assignUseTime,
            ...args
        } = {},
    ) {
        this.id = id
        this.houseId = houseId
        this.sourceCompany = sourceCompany
        this.assignCompany = assignCompany
        this.startIp = startIp
        this.endIp = endIp
        this.useType = useType
        this.useCompany = useCompany
        this.companyAttr = companyAttr
        this.idType = idType
        this.idNumber = idNumber
        this.assignUseTime = assignUseTime
        Object.assign(this, args)
    }
}